package service;

import dao.AlunoTurmaDAO;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import modelo.Aluno;
import modelo.AlunoTurma;
import modelo.Turma;
import util.FabricaDeObjetos;
import util.JPAUtil;

/**
 *
 * @author Abraao
 */
public class AlunoTurmaService {

    public static AlunoTurmaDAO alunoTurmaDAO;

    static {
        try {
            alunoTurmaDAO = (AlunoTurmaDAO) FabricaDeObjetos.getObjetoUnico(AlunoTurmaDAO.class);
        } catch (Exception ex) {
            Logger.getLogger(AlunoTurmaService.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public List<AlunoTurma> getTodos() {
        return alunoTurmaDAO.getAll();
    }

    public AlunoTurma getPorId(Long id) {
        return alunoTurmaDAO.getPorId(id);
    }

    public List<AlunoTurma> getPorAluno(Aluno aluno) {
        return alunoTurmaDAO.getPorAluno(aluno);
    }

    public List<AlunoTurma> getPorDisciplina(Turma turma) {
        return alunoTurmaDAO.getPorTurma(turma);
    }

    public void inserir(AlunoTurma alunoTurma) {
        JPAUtil.beginTransaction();
        alunoTurmaDAO.persist(alunoTurma);
        JPAUtil.commitTransaction();
    }

    public void remover(AlunoTurma alunoTurma) {
        JPAUtil.beginTransaction();
        AlunoTurma alunoTurma1 = alunoTurmaDAO.getPorId(alunoTurma.getId());
        alunoTurmaDAO.remove(alunoTurma1);
        JPAUtil.commitTransaction();
    }

    public void alterar(AlunoTurma alunoTurmaMod) {
        JPAUtil.beginTransaction();
        alunoTurmaDAO.merge(alunoTurmaMod);
        JPAUtil.commitTransaction();
    }
}
